import Vue from 'vue'
import 'normalize.css/normalize.css' // A modern alternative to CSS resets

import i18n from '@/lang' // 导入语言包实例

import ElementUI from 'element-ui'
// import 'element-ui/lib/theme-chalk/index.css'  // 注释默认样式
import '@/theme1/theme/index.css'

// import locale from 'element-ui/lib/locale/lang/en' // lang i18n
import '@/styles/index.scss' // 全局样式

import App from './App'
import store from './store'
import router from './router'
import Component from '@/components'

import '@/icons' // 导入所有的icon图标
import '@/permission' // 导航权限守卫逻辑
import checkPermission from '@/mixins/checkPermission'
import * as directives from '@/directives'
import * as filters from '@/filters'

import Print from 'vue-print-nb'
Vue.use(Print)

Vue.mixin(checkPermission)

// 批量注册指令
// Object.keys(对象) 将对象中所有的数据取出组成数组
Object.keys(directives).forEach(val => {
  // Vue.directive(自定义指令名,配置对象)
  Vue.directive(val, directives[val])
})
// 批量注册过滤器
Object.keys(filters).forEach(val => {
  // Vue.filter(过滤器名,函数)
  Vue.filter(val, filters[val])
})

// 设置英文版本
// Vue.use(ElementUI, { locale })
// 安装中文版本
// Vue.use(ElementUI)
// 根据i8n的情况自动调整语言版本
Vue.use(ElementUI, {
  i18n: (key, value) => i18n.t(key, value)
})
// element-ui 集合  i18n文档地址：
// https://element.eleme.cn/#/zh-CN/component/i18n   【兼容 vue-i18n@6.x】

// 安装插件
// Vue.use(插件)
// 安装插件的时候会调用插件里面的install方法
// install 方法的形参是Vue构造器函数
Vue.use(Component)

Vue.config.productionTip = false

new Vue({
  el: '#app',
  router,
  store,
  i18n,
  // render: h => h(App)
  render: function(h) {
    return h(App)
  }
})

